module mux
(
    iCtrl,
    iData_1,
    iData_2,
    iData_3,
    iData_4,
    oData_q
);
    parameter DATA_WIDTH=3;
    input[3:0]                  iCtrl;
    input[DATA_WIDTH-1:0]       iData_1;
    input[DATA_WIDTH-1:0]       iData_2;
    input[DATA_WIDTH-1:0]       iData_3;
    input[DATA_WIDTH-1:0]       iData_4;
    output[DATA_WIDTH-1:0]      oData_q;
    reg[DATA_WIDTH-1:0]         oData_q;
    always @ (*)
    begin
        case(iCtrl)
        4'b1000  :   oData_q=iData_1;
        4'b0100  :   oData_q=iData_2;
        4'b0010  :   oData_q=iData_3;
        4'b0001  :   oData_q=iData_4;
        default :   oData_q=4'b0000;
        endcase
    end
endmodule
